home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 076-100 / scopedisk89 / amrtization / amort.bas < prev    next >
BASIC Source File  |  1995-03-19  |  4KB  |  167 lines

  1. Introit:
  2. CLS
  3. WINDOW 2,"Amortization Scheduler",(0,0)-(631,186),8
  4. PRINT  SPC(24);"Amortization Scheduler"
  5. PRINT :PRINT SPC(30);"by -DAVE-"
  6. t=TIMER:WHILE TIMER<t+3:WEND
  7.  
  8. arg2=-1
  9. WHILE arg2
  10. CLS
  11. PRINT 
  12. PRINT " Name   ";
  13. arg=-1
  14. WHILE arg
  15. LINE INPUT;Nam$
  16. IF Nam$<>"" THEN arg=0
  17. WEND
  18. CLS
  19. LOCATE 2,2:PRINT UCASE$(Nam$)
  20. INPUT " Principle   ", Principle
  21. LOCATE 3,13:PRINT USING "$$#####,.##";Principle
  22. INPUT " Interest    ", Interest
  23. LOCATE 4,1:PRINT STR$(Interest);"%  Annual Percentage Rate"
  24. INPUT " Term (yrs.) ", Term
  25. LOCATE 5,1:PRINT STR$(Term);" year term     ";Term*12;" scheduled payments"
  26. arg=-1
  27. WHILE arg
  28. LOCATE 6,1:PRINT " Month # - starting payment";
  29. INPUT m%
  30. IF m%<13 AND m%>0 THEN arg=0
  31. WEND
  32. LOCATE 7,1:PRINT " Year of starting payment";
  33. INPUT y%
  34. LOCATE 8,1:PRINT " To  [s]creen  or  [p]rinter";
  35. INPUT p$
  36. PRINT:PRINT " Is this information correct? ";
  37. a$ = UCASE$(INPUT$(1))
  38. IF LEFT$(a$,1) = "Y" THEN arg2=0
  39. WEND
  40.  
  41. Conversions:
  42. CompInt = (Interest/100)/12
  43. CompTerm = Term * 12
  44. PBal = Principle
  45. Nlength = LEN(Nam$)
  46. PMT = PBal / ((1-(1+CompInt)^-CompTerm)/(CompInt))
  47. my$=RIGHT$(STR$(m%),2)+"/"+RIGHT$(STR$(y%),4)
  48. CLS
  49. scrn:
  50. IF UCASE$(p$)<>"P" THEN arg=-1
  51. WHILE arg
  52. PRINT  UCASE$(Nam$);SPC(50-Nlength);
  53. PRINT  USING"Principle $$#####,.##";Principle
  54. FOR x = 1 TO Nlength
  55. PRINT  "*";
  56. NEXT
  57. PRINT  SPC(50-Nlength);"Interest =";STR$(Interest);"% A.P.R."
  58. PRINT  SPC(50);"Term = ";STR$(Term);" year";
  59. IF Term <> 1 THEN
  60. PRINT  "s"
  61. ELSE
  62. PRINT  ""
  63. END IF
  64. PRINT  SPC(50);"Starting m/y: ";my$
  65. PRINT  SPC(50);
  66. PRINT  USING"Payment = $$#####,.##";PMT
  67. PRINT  ""
  68. PRINT  "Pymt                                  ";
  69. PRINT  "Present      Accrued        Accrued"
  70. PRINT  " No.    Principle      Interest       ";
  71. PRINT  "Balance  Mo/Yr   Principle      Interest"
  72. PRINT  ""
  73. WHILE PMTNO < CompTerm
  74. NewInt = PBal * CompInt
  75. PPrin = PMT - NewInt:IF PPrin > PBal THEN PPrin = PBal
  76. PBal = PBal - PPrin
  77. APrin = APrin + PPrin
  78. AInt = AInt + NewInt
  79. PMTNO = PMTNO + 1 
  80. PRINT  USING "###-";PMTNO;
  81. y$=STR$(y%):y$=RIGHT$(y$,2)
  82. m$=STR$(m%):m$=RIGHT$(m$,2)
  83. PRINT m$+"/"+y$;
  84. m%=m%+1
  85. IF m%=13 THEN
  86. y%=y%+1
  87. m%=1
  88. END IF
  89.  
  90. PRINT  USING "$$#####,.## ";PPrin;
  91. PRINT  USING "$$#####,.## ";NewInt;
  92. PRINT  USING "$$#####,.## ";PBal;
  93. PRINT  USING "$$#####,.## ";APrin;
  94. PRINT  USING "$$#####,.##";AInt
  95. WEND
  96. PRINT  ""
  97. PRINT  USING "Initial Payment =$$#####,.##";PMT
  98. PRINT  USING "Final Payment =  $$#####,.##";PPrin+NewInt
  99. arg=0
  100. WEND
  101. Prtr:
  102. IF UCASE$(p$)="P" THEN arg=-1
  103. WHILE arg
  104. OPEN "prt:" FOR OUTPUT AS 1
  105. PRINT#1,  UCASE$(Nam$);SPC(50-Nlength);
  106. PRINT#1,  USING"Principle $$#####,.##";Principle
  107. FOR x = 1 TO Nlength
  108. PRINT#1,  "*";
  109. NEXT
  110. PRINT#1,  SPC(50-Nlength);"Interest =";STR$(Interest);"% A.P.R."
  111. PRINT#1,  SPC(50);"Term = ";STR$(Term);" year";
  112. IF Term <> 1 THEN
  113. PRINT#1,  "s"
  114. ELSE
  115. PRINT#1,  ""
  116. END IF
  117. PRINT#1,  SPC(50);"Starting m/y: ";my$
  118. PRINT#1,  SPC(50);
  119. PRINT#1,  USING"Payment = $$#####,.##";PMT
  120. PRINT#1,  ""
  121. PRINT#1,  "Pymt                                  ";
  122. PRINT#1,  "     Present      Accrued        Accrued"
  123. PRINT#1,  " No. Mo/Yr    Principle      Interest       ";
  124. PRINT#1,  "Balance     Principle      Interest"
  125. PRINT#1,  ""
  126. WHILE PMTNO < CompTerm
  127. NewInt = PBal * CompInt
  128. PPrin = PMT - NewInt:IF PPrin > PBal THEN PPrin = PBal
  129. PBal = PBal - PPrin
  130. APrin = APrin + PPrin
  131. AInt = AInt + NewInt
  132. PMTNO = PMTNO + 1 
  133. PRINT#1,  USING "###-";PMTNO;
  134. y$=STR$(y%):y$=RIGHT$(y$,2)
  135. m$=STR$(m%):m$=RIGHT$(m$,2)
  136. PRINT#1, m$+"/"+y$;
  137. m%=m%+1
  138. IF m%=13 THEN
  139. y%=y%+1
  140. m%=1
  141. END IF
  142.  
  143. PRINT#1,  USING "$$#####,.## ";PPrin;
  144. PRINT#1,  USING "$$#####,.## ";NewInt;
  145. PRINT#1,  USING "$$#####,.## ";PBal;
  146. PRINT#1,  USING "$$#####,.## ";APrin;
  147. PRINT#1,  USING "$$#####,.##";AInt
  148. WEND
  149. PRINT #1, ""
  150. PRINT#1,  USING "Initial Payment =$$#####,.##";PMT
  151. PRINT#1,  USING "Final Payment =  $$#####,.##";PPrin+NewInt
  152. CLOSE 1
  153. arg=0
  154. WEND
  155.  
  156. PRINT "Exit y/n";
  157.  
  158.   
  159.   INPUT Ex$
  160. WINDOW CLOSE 2  
  161. IF UCASE$(Ex$)="N" THEN 
  162. GOTO Introit 
  163. ELSE
  164. END
  165. END IF
  166.  
  167.